
package Model;


import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.report.ReportManager;
import net.sf.jxls.report.ReportManagerImpl;
import net.sf.jxls.transformer.XLSTransformer;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;




public class ToExcel {
    
   private Mysql mysql;
    
    
    public ToExcel(Mysql mysql){
        this.mysql = mysql;
       
        
    }

    public void Open (File file){
        
         if (Desktop.isDesktopSupported()){
            try {
                // esto verifica si puede abrir archivos la computadora 
                Desktop.getDesktop().open(file);
            } catch (IOException ex) {
                Logger.getLogger(ToExcel.class.getName()).log(Level.SEVERE, null, ex);
            }
                    
            
        }
    }
    
    public void Employee (String plantilla, Date date) throws SQLException, ParsePropertyException, IOException, InvalidFormatException{
                       // tipo a va hacer cuando crea el archivo con una consulta y dos parametros en este 
                        // caso fecha inicial y final, y luego el nombre de la plantilla que es directamente a el nombre de la plantilla. 
                                   Map beans = new HashMap();
                                   ReportManager rm = new ReportManagerImpl( mysql.connection, beans );
  
                                    beans.put("rm", rm);
                                    beans.put("date",date);
                                    
                                    SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); 
                                    String fecha = format.format(date);
                                    
                                    beans.put("indate",fecha);
                                    
                                   
                                    
                                    XLSTransformer transformer = new XLSTransformer();
            
                                    transformer.transformXLS(System.getProperty("user.dir")+"/src/Templates/Template"+plantilla+".xls", beans, System.getProperty("user.dir")+"/src/Reports/Report"+plantilla+fecha+".xls");
           
                                    File file = new File(System.getProperty("user.dir")+"/src/Reports/Report"+plantilla+fecha+".xls");
                                    
                                   
                                    Open(file);  // abro el archivo. 
           
        }
    
  
                
                   
       
      
    }

